<?php

/**
 * 格式化后台表单字段数据
 * @author qingyu8@staff.weibo.com
 * @date 2018/01/29
 */
namespace common\tool;

class FormField {

    /**
     * textarea 每行一个数据，例如uid白名单
     *
     * @param $str
     * @return array
     */
    public static function rowItem($str) {
        $str = trim(str_replace("\r\n", "\n", $str), "\n");
        return !empty($str) ? explode("\n", $str) : [];
    }

    /**
     * text 一个文本域含多个字段，|分隔
     * @param $str
     * @param string $delimiter
     * @return array
     */
    public static function inlineItem($str, $delimiter = '|') {
        return empty($str) ? [] : explode($delimiter, trim($str));
    }

    /**
     * textarea 每行一条数据，每条含多个字段
     * @param $str
     * @param null $delimiter
     * @return array [['val1','val2',...],...]
     */
    public static function rowData($str, $delimiter = null) {
        $data = self::rowItem($str);
        foreach ($data as $k => $v) {
            if (is_null($delimiter)) {
                $data[$k] = self::inlineItem($v);
            } else {
                $data[$k] = self::inlineItem($v, $delimiter);
            }
        }
        return $data;
    }
}
